//Figure 2: Essential Traceability //Author : Sriram Rajagopalan // Requirements Table Requirements { Requirement_Id integer [pk] Requirement_Type_id integer Project_Id integer Project_Group_Id integer Component_Id integer Note: 'Stores Product level Requirements' } Table RequirementSteps { Requirement_Step_Id integer [pk] Requirement_Id integer Position integer Project_Group_Id integer Note: 'Stores Product Requirement Scenario Steps; \n\nThe Project_Group_Id is named Project_Project_Group_Id' } Table RequirementTypes { Requirement_Type_Id integer [pk] Project_Template_id integer Requirement_Workflow_id integer Note: 'Template with Product Requirement Types and association with the Requirement workflow in a template' } Table RequirementTestCases { Requirement_Id integer [pk] Test_Case_Id integer [pk] Project_Id integer Note: 'Stores Connects Product Requirements and Product Test Cases' } // Incidents Table Incidents { Incident_Id integer [pk] Priority_Id integer Severity_Id integer Incident_Status_Id integer Incident_Type_Id integer Project_id integer Project_Group_Id integer Component_Id integer Note:'Stores Product level Incidents' } Table IncidentPriorities { Priority_Id integer [pk] Project_Template_id integer Note: 'Template with Incident Priorities' } Table IncidentSeverities { Severity_Id integer [pk] Project_Template_id integer Note: 'Template with Incident Severities' } Table IncidentStatuses { Incident_Status_Id integer [pk] Project_Template_id integer Note: 'Template with Incident Statuses' } Table IncidentTypes { Incident_Type_Id integer [pk] Project_Template_id integer Workflow_id integer Note: 'Template with Incident Types and workflows' } Table RequirementIncidents { Requirement_Id integer [pk] Incident_Id integer [pk] Note: 'Connects Produt Requirements and Product Incidents' } Table TestCaseIncidents { Incident_Id integer [pk] Test_Case_Id integer [pk] Detected_Release_Id integer Resolved_Release_Id integer Verified_Release_Id integer Note: 'Connects Produt Test Cases and Product Incidents' } Table TestRunIncidents { Test_Run_Id integer [pk] Incident_Id integer [pk] Detected_Release_Id integer Resolved_Release_Id integer Verified_Release_Id integer Note:'Connects Test Runs with Incidents and the associated releases' } //Test Cases Table TestCases { Test_Case_Id integer [pk] Project_Id integer Test_Case_Type_Id integer Project_Group_Id integer Component_Id integer Note:'Stores Product level Test Cases' } Table TestCaseFolders { Test_Case_Folder_Id integer [pk] Project_Id integer Project_Group_Id integer Note: 'Stores Test Case Folders for the Product' } Table TestCaseTypes { Test_Case_Type_Id integer [pk] Project_Template_Id integer Test_Case_Workflow_Id integer Project_Group_Id integer Note: 'Template containing Test Case Types and association with Test Case Workflow in a template' } Table TestSteps { Test_Step_Id integer [pk] Test_Case_Id integer Project_Id integer Project_Group_Id integer Note: 'Stores Test Step information for the Test Case' } //Test Runs Table TestRuns { Test_Case_Id integer Test_Run_Id integer [pk] Test_Set_Id integer Release_Id integer Build_Id integer Project_Id integer Project_Group_Id integer Note: 'Stores Test Run information for a specific TestCcase' } Table TestRunSteps { Test_Run_Step_Id integer [pk] Test_Case_Id integer Test_Step_Id integer Test_Run_Id integer Project_Id integer Project_Group_Id integer Note:'Stores details of Test Run specific details' } //Build Table Builds { Build_Id integer [pk] } //Minimal Relationships //Requirements Ref: "Requirements"."Requirement_Id" - "RequirementIncidents"."Requirement_Id" Ref: "Requirements"."Requirement_Id" - "RequirementSteps"."Requirement_Id" Ref: "Requirements"."Requirement_Id" - "RequirementTestCases"."Requirement_Id" Ref: "RequirementTypes"."Requirement_Type_Id" - "Requirements"."Requirement_Type_id" Ref: "RequirementIncidents"."Incident_Id" - "Incidents"."Incident_Id" //TestCases Ref: "TestCases"."Test_Case_Id" - "RequirementTestCases"."Test_Case_Id " Ref: "TestCaseIncidents"."Incident_Id" - "Incidents"."Incident_Id" Ref: "TestCaseIncidents"."Test_Case_Id" - "TestCases"."Test_Case_Id" Ref: "TestSteps"."Test_Case_Id" - "TestCases"."Test_Case_Id" Ref: "TestCaseTypes"."Test_Case_Type_Id" - "TestCases"."Test_Case_Type_Id" //TestRuns Ref: "TestRuns"."Test_Case_Id" - "TestCases"."Test_Case_Id" Ref: "TestRunIncidents"."Test_Run_Id" - "TestRuns"."Test_Run_Id" Ref: "TestRunIncidents"."Incident_Id" - "Incidents"."Incident_Id" Ref: "TestRunSteps"."Test_Case_Id" - "TestCases"."Test_Case_Id" Ref: "TestRunSteps"."Test_Run_Id" - "TestRuns"."Test_Run_Id" //Incidents Ref: "IncidentSeverities"."Severity_Id" - "Incidents".Severity_Id" Ref: "IncidentPriorities"."Priority_Id" - "Incidents".Priority_Id" Ref: "Incidents"."Incident_Status_Id" - "IncidentStatuses".Incident_Status_Id" Ref: "Incidents"."Incident_Type_Id" - "IncidentTypes".Incident_Type_Id" //Build Ref: "Builds"."Build_Id" - "TestRuns"."Build_Id"